-
Notifications
You must be signed in to change notification settings - Fork 3
Audio injection #381
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Audio injection #381
Conversation
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughAdds a new Inject Audio guide and navigation link; replaces image-injection steps with a Media Injection workflow in device controls; expands microphone/audio testing instructions and visuals; and adds a "Download audio tracks and metadata" section to session management docs. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant UI as "Session UI / Inject Media"
participant Bridge as "Bluetooth-bridge / Backend"
participant Device as "Connected Device"
participant Storage as "Session Artifacts"
User->>UI: Start manual session → Open Inject Media
UI->>Bridge: Upload audio (validate format/size)
Bridge->>Device: Transmit audio via Bluetooth
alt success
Device-->>Bridge: Ack / playback started
Bridge-->>UI: Progress & success
Bridge->>Storage: Store Injected audio artifact
else failure
Bridge-->>UI: Error (format/connection/capability)
end
Note over UI,Storage: Post-session: UI exposes Input / Injected / Output downloads
sequenceDiagram
autonumber
actor Reviewer
participant SessionUI as "Session Explorer"
participant Storage as "Session Artifacts"
Reviewer->>SessionUI: Open session -> Download Audio Tracks
SessionUI->>Storage: Request Input/Injected/Output files & metadata
Storage-->>SessionUI: Return files (Output only for calls)
SessionUI-->>Reviewer: Provide download links & notes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
docs/modules/manual-testing/pages/local-devices/inject-audio.adoc (1)
76-90: Troubleshooting table covers key failure modes.The troubleshooting section addresses three common scenarios: disabled button, missing button, and no audio recorded. The resolutions are detailed and go beyond surface-level suggestions (e.g., "unmute microphone" and "verify app is recording") to address root causes. However, one resolution could be expanded slightly for clarity:
Line 87–88: "Make sure the target app is actively recording or listening when you click Inject." This is clear, but you might also mention that some apps may require explicit permission grants before they can capture audio.
Overall, the troubleshooting content is comprehensive and appropriate for a beta feature.
Consider adding a line in the troubleshooting table's "No audio recorded" resolution about verifying app permissions (e.g., microphone access). This can help users troubleshoot platform-specific permission issues that may block audio capture.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (13)
docs/modules/manual-testing/images/bluetooth-audio-device-filter.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-devices.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-file-finder.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-injecting.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-injection-closeup.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-injection-empty.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-injection-uploaded.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-not-enabled.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/bluetooth-audio-session-overview.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/image-injection-closeup.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/image-injection-completed.pngis excluded by!**/*.pngdocs/modules/manual-testing/images/media-injection.pngis excluded by!**/*.pngdocs/modules/session-explorer/images/audio-tracks-download.pngis excluded by!**/*.png
📒 Files selected for processing (4)
docs/modules/manual-testing/nav.adoc(1 hunks)docs/modules/manual-testing/pages/device-controls.adoc(1 hunks)docs/modules/manual-testing/pages/local-devices/inject-audio.adoc(1 hunks)docs/modules/session-explorer/pages/manage-sessions.adoc(2 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-06-05T04:25:21.053Z
Learnt from: tungmhoang
PR: kobiton/docs#277
File: docs/modules/automation-testing/pages/get-a-session-id/using-the-kobiton-portal.adoc:16-16
Timestamp: 2025-06-05T04:25:21.053Z
Learning: In Kobiton documentation, "Session Overview" terminology is still appropriate when referring to the overview section/view within Session Explorer, even when other parts of the documentation use "Session Explorer" terminology.
Applied to files:
docs/modules/session-explorer/pages/manage-sessions.adoc
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: publish-docs-test
- GitHub Check: publish-docs-test
🔇 Additional comments (10)
docs/modules/manual-testing/nav.adoc (1)
14-14: Navigation link correctly placed and formatted.The new link to
inject-audio.adocis positioned appropriately within the "Local or private devices" section and uses consistent xref syntax with other navigation entries.docs/modules/session-explorer/pages/manage-sessions.adoc (2)
16-16: Clearer session overview description.The updated text concisely conveys the purpose of the Session Overview window. The phrasing "view more details and manage the session" is more user-centric than the prior version.
73-93: New audio tracks subsection is well-structured and clear.The new "Download audio tracks and metadata" subsection is logically placed after the Applitools section and integrates smoothly into the session management workflow. The IMPORTANT callout appropriately directs users to the detailed audio injection guide. The distinction between Input, Injected, and Output audio is clear. The NOTE about audio output limitations (calls only) is a helpful scope clarifier.
Cross-reference path
xref:manual-testing:local-devices/inject-audio.adocaligns with the new documentation page. Retrieved learning confirms "Session Overview" terminology is appropriate in this context.Verify that the external link to the Kobiton audio samples repository (https://github.com/kobiton/samples/tree/master/audio) is active and references valid sample code for audio injection.
docs/modules/manual-testing/pages/device-controls.adoc (2)
82-99: Image injection section refactored to Media Injection workflow.The "Image injection" section now correctly positions image injection under the "Media Injection" umbrella, making the UI workflow clearer to users. The added IMPORTANT note directs readers to the
test-your-app-camera.adocguide for detailed image injection instructions, which is appropriate for a device controls reference.The step-by-step flow (select Media Injection → select Image Injection tab → upload/inject) is now explicit and matches the parallel audio injection workflow below.
101-118: Audio injection section updated consistently with Media Injection pattern.The audio injection section now mirrors the image injection workflow structure, promoting consistency and reducing cognitive load for users toggling between the two features. The IMPORTANT note correctly references
xref:manual-testing:local-devices/inject-audio.adocfor comprehensive audio injection guidance.The conditional error message (line 116) and reference to device filtering (line 116) are practical additions that help users troubleshoot when audio injection is unavailable. The cross-reference to the inject-audio guide from the error path provides helpful context.
Confirm that image references (
media-injection.png,bluetooth-audio-injection-closeup.png,bluetooth-audio-not-enabled.png) exist in the documentation assets and that the cross-references totest-your-app-camera.adocandlocal-devices/inject-audio.adocare correct.docs/modules/manual-testing/pages/local-devices/inject-audio.adoc (5)
1-13: Clear title and prerequisites section.The page title appropriately marks this as "Beta" functionality, and the intro clearly frames the use case. The prerequisites are comprehensive and appropriately flag the bluetooth-bridge server dependency with an IMPORTANT note. One small clarity suggestion: while "Standard mode" is mentioned, users unfamiliar with Kobiton's session modes may benefit from a brief clarification or link explaining what distinguishes "Standard mode" from other modes.
Verify that there is documentation explaining Kobiton's session modes (Standard, Mixed, etc.) so readers can understand the mode requirement without external knowledge. If such documentation exists, consider adding a cross-reference.
15-25: Supported audio format table is clear and comprehensive.The format specifications are well-organized in table form. The constraints are specific and actionable: 8 kHz sample rate, 16-bit depth, mono channels, and 30 MB max size. Supporting WAV, OGG, and MP3 containers covers common formats.
27-49: Workflow is well-sequenced with clear progression.The five-step injection workflow progresses logically: device selection → open UI → upload file → stage app → trigger injection. Each step includes an image, making this section highly scannable. The use of concrete example filenames (
sample.wav) and realistic UI states (empty → uploaded → injecting → confirmed) helps users follow along.The step instructing users to "open the target application on the device" before injecting (line 41) is pragmatic and helps users avoid a common failure mode.
51-59: Session artifacts section correctly references Session Overview.The "Reviewing session artifacts" section appropriately cross-references the Session Overview page (file 2) and mirrors the audio track definitions provided there, creating a coherent narrative: inject audio in manual session → artifacts are captured → download from Session Overview. The distinction between Input, Injected, and Output audio is consistent across both documents.
61-74: Tips & best practices are practical and specific.The three tips (filter devices, verify format, stage app) are actionable and address the most common pain points. The device filter tip includes specific UI navigation ("Audio → Supported"), making it easy to execute. The format verification tip provides actionable conversion guidance (8 kHz, 16-bit, mono PCM WAV).
rohan-kobiton
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey - just came across this and figured I would give me thoughts. I have a few comments about the 3 formats and specifics.
Also an additional recommendation - for images and large files on github it is good practice to use LFS https://git-lfs.com/ . It keeps your repo from getting bloated and from slowing down pulls/pushes.
Summary
Related PRs, issues, or features (optional)
Metadata
PR contributor checklist
My PR follows the Kobiton Docs contributor guidelines, meaning:
nav.adocfile.en-us) from my URLs.Summary by CodeRabbit